home *** CD-ROM | disk | FTP | other *** search
/ CD Ware Multimedia 1994 November / Cd Ware (Nro. 2) - Epimundo.iso / DOS / CM / BBS200.ZIP / LISTER.PPS < prev    next >
Encoding:
Text File  |  1994-05-07  |  28.1 KB  |  895 lines

  1. ;BBS LISTER 2.00 Beta
  2. ;Date 3-27-94, Sunday
  3. ;Written by John R. Pepp
  4. ;Updated : 05-07-94, Saturday
  5. ;Program No. 2 - A General BBS listing Program!
  6. ;FREEWARE
  7. ;Adding additional information, such as Modem Type, BBS Software used,
  8. ;Baud Rate and general description.
  9. ;Adding better editing information, configuration file, a general download
  10. ;file and a sysop menu.
  11. ;Future Plans included getting rid of array and maybe RIP support!
  12.  
  13.  
  14. BOOLEAN No_add 'Only One Per Customer :=)
  15. BOOLEAN quit 'Main Menu Condition
  16. BOOLEAN max_bull 'Max Bull Condition
  17. BOOLEAN found_name
  18. BOOLEAN main_exit ' Flag to determine Exit Point for 2nd Menu
  19. BOOLEAN edit_exit ' Flag to exit EDIT MENU
  20.  
  21. STRING hotkey            ; needed for selection
  22. STRING settings          ; configuration settings for BBS Lister
  23. STRING search_name       ;
  24. STRING name              ; Temp variable for bbs name
  25. STRING number            ;
  26. STRING sysop             ; Temp variable for bbs sysop
  27. STRING b_user            ;
  28. STRING s_date            ;
  29. STRING check             ;
  30. STRING current_user(250) ; Current User Name
  31. STRING mark(250)         ; Mark For LogOFF?
  32. STRING bbs_name(250)     ; Name of BBS
  33. STRING bbs_phone(250)    ; Telephone of BBS
  34. STRING bbs_sysop(250)    ; Sysop of BBS
  35. STRING bbs_modem(250)    ; Type Of Modem
  36. STRING bbs_soft(250)     ; Type Of BBS
  37. STRING bbs_baud(250)     ; baud_rate that is supported
  38. STRING top_modem(20)     ; Most common modems used for bbses
  39. STRING top_soft(16)      ; Most common bbs software used.
  40. STRING top_baud(5)       ; Most common baud rate
  41. STRING areacode          ; Area Code
  42. STRING prefix            ; Pre-Fix
  43. STRING suffix            ; Suffix
  44. STRING cmd               ; Callers Response
  45. STRING stamp_date(250)   ; Date Caller Listed BBS
  46. STRING line              ; Place BBS is Bullentins
  47. STRING code              ; Enter area code for search
  48. STRING hold              ; Get Area Code From Data File
  49. STRING bbs_desc(250)     ; Description of BBS
  50. STRING bbs_choice        ;Number that corresponds with BBS Software
  51. STRING mod_choice        ;Number that corresponds wtth Modem
  52. STRING baud_choice       ;Baud rate
  53.  
  54. INTEGER a,b,i,j,x,y, max, stored, count,total ; array counters for bbs List
  55. INTEGER gen_max
  56. INTEGER sysop_level, bull_level
  57.  
  58. ;Assign BBS Software to Top_soft array
  59. LET bbs_choice   = "" 'Initialzie variable to zero
  60. LET mod_choice   = "" 'Initialize variable to zero
  61. LET max          = 4
  62. LET gen_max      = 10
  63. LET top_baud(1)  = "1200/2400"
  64. LET top_baud(2)  = "2400"
  65. LET top_baud(3)  = "2400/9600/14000"
  66. LET top_baud(4)  = "9600/14000/19200"
  67. LET top_baud(5)  = "19200+"
  68. LET top_soft(1)  = "PCBoard"
  69. LET top_soft(2)  = "Wildcat!"
  70. LET top_soft(3)  = "The Major BBS"
  71. LET top_soft(4)  = "SearchLight BBS"
  72. LET top_soft(5)  = "TBBS"
  73. LET top_soft(6)  = "TAG"
  74. LET top_soft(7)  = "Remote Access"
  75. LET top_soft(8)  = "GAP"
  76. LET top_soft(9)  = "Renegade"
  77. LET top_soft(10)  = "Powerboard BBS"
  78. LET top_soft(11) = "Magnum BBS"
  79. LET top_soft(12) = "Spitfire BBS"
  80. LET top_soft(13) = "RoboBoard/FX"
  81. LET top_soft(14) = "RY BBS"
  82. LET top_soft(15) = "Virtual BBS"
  83. LET top_soft(16) = "Other BBS Software"
  84.  
  85. ;Assign Modem to top_modem array
  86.  
  87. LET top_modem(1)   = "AT&T Paradyne"
  88. LET top_modem(2)   = "ATI Technologies"
  89. LET top_modem(3)   = "Cardinal Technologies"
  90. LET top_modem(4)   = "Computer Peripherals"
  91. LET top_modem(5)   = "Digicom Systems"
  92. LET top_modem(6)   = "Galaxy Networks"
  93. LET top_modem(7)   = "GVC Technologies"
  94. LET top_modem(8)   = "Hayes Microcomputer"
  95. LET top_modem(9)   = "Image Communications"
  96. LET top_modem(10)  = "Intel Corporation"
  97. LET top_modem(11)  = "Microcom"
  98. LET top_modem(12)  = "Multi-Tech Systems"
  99. LET top_modem(13)  = "Pratical Peripherals"
  100. LET top_modem(14)  = "Supra Corporation"
  101. LET top_modem(15)  = "Telebit Corporation"
  102. LET top_modem(16)  = "U.S. Robotics"
  103. LET top_modem(17)  = "Ven-Tel"
  104. LET top_modem(18)  = "ZyXEL"
  105. LET top_modem(19)  = "Zoom Telephonics"
  106. LET top_modem(20)  = "Other"
  107.  
  108. LET no_add  = FALSE 'Do not let user's to add more than one bbs listing.
  109. LET quit = FALSE
  110. LET max_bull = FALSE
  111. LET edit_exit = FALSE
  112. LET main_exit = FALSE
  113. LET found_name = FALSE
  114.  
  115. LET count = 0  'Reset total BBS Listings
  116. LET total = 6 'Max. Number of Logoff Listings!
  117. LET cmd = " "
  118.  
  119. ; Get information from a configuration file!
  120. FOPEN 5, PPEPATH()+"CONF", O_RD, S_DW
  121. FGET 5, settings
  122. FCLOSE 5
  123. TOKENIZE settings
  124. LET sysop_level = GETTOKEN()
  125. LET bull_level  = GETTOKEN()
  126. LOG "****ENTERED LISTER.PPS****", TRUE
  127. LET hotkey = ""
  128. GOSUB main_header
  129.  
  130. WHILE (hotkey <> "Q") DO
  131.   LET hotkey = ""
  132.   LET hotkey = INKEY()
  133.   LET hotkey = UPPER(hotkey)
  134.  
  135.   IF (hotkey = "A") THEN
  136.  
  137.     GOSUB get_info
  138.     IF (CURSEC() >= sysop_level) THEN
  139.       GOSUB data_entry
  140.       LET no_add = TRUE
  141.       GOSUB main_header
  142.     ELSE IF (!(no_add)) THEN
  143.       GOSUB data_entry
  144.       GOSUB main_header
  145.     ELSE IF (no_add) THEN
  146.       GOSUB edit_menu
  147.       GOSUB main_header
  148.     ENDIF
  149.   ELSE IF (hotkey = "!") THEN
  150.     IF (CURSEC() >= sysop_level) THEN
  151.       GOSUB sysop_com
  152.       GOSUB main_header
  153.     ENDIF
  154.   ELSE IF (hotkey = "V") THEN
  155.     GOSUB view
  156.     GOSUB main_header
  157.   ELSE IF (hotkey = "G") THEN
  158.     GOSUB gen_view
  159.     GOSUB main_header
  160.   ELSE IF (hotkey = "D") THEN
  161.     DOWNLOAD "LISTING.TXT"
  162.     GOSUB main_header
  163.   ELSE IF (hotkey = "L") THEN
  164.     DISPFILE PPEPATH()+"GOODBYEG",SEC+GRAPH+LANG 'LOGOFF SCREE
  165.     BYE
  166.   ENDIF
  167. ENDWHILE
  168.  
  169. END 'Main Program
  170.  
  171. :main_header
  172. CLS
  173. PRINTLN "@X71╔═══════════════════════════════╤══════════════════════╤══════════════════════╕@X07"
  174. PRINTLN "@X71║ @X74Add@X7F/@X70View@X7F/@X7EEdit @X7FMenu            @X71│   @X70LISTER @X7E2.00        @X71│ @XFER@XF0E@XF1G@XF2I@XF3S@XF4T@XF5E@XF6R@XF8E@XF9D @X70VERSION   @X71│@X07"
  175. PRINTLN "@X71╠═══════════════════════════════╧══════════════════════╧══════════════════════╡@X07"
  176. PRINTLN "@X71║ @X74▒▒▓▓██ @X70(@X71A@X70)dd/Edit BBS Listing       @X74██▓▓▒▒  @X7FAdd your BBS Here!              @X71│@X07"
  177. PRINTLN "@X71╠═════════════════════════════════════════════════════════════════════════════╡@X07"
  178. PRINTLN "@X71║ @X74▒▒▓▓██ @X70(@X71V@X70)iew BBS Listings          @X74██▓▓▒▒  @X7FView BBS Listings by AREA CODE  @X71│@X07"
  179. PRINTLN "@X71╠═════════════════════════════════════════════════════════════════════════════╡@X07"
  180. PRINTLN "@X71║ @X74▒▒▓▓██ @X70(@X71G@X70)eneral BBS Listings       @X74██▓▓▒▒  @X7FGeneral BBS Listings            @X71│@X07"
  181. PRINTLN "@X71╠═════════════════════════════════════════════════════════════════════════════╡@X07"
  182. PRINTLN "@X71║ @X74▒▒▓▓██ @X70(@X71!@X70)Sysop Menu                @X74██▓▓▒▒  @X7FSysop Menu                      @X71│@X07"
  183. PRINTLN "@X71╠═════════════════════════════════════════════════════════════════════════════╡@X07"
  184. PRINTLN "@X71║ @X74▒▒▓▓██ @X70(@X71D@X70)ownload Text BBS Listing  @X74██▓▓▒▒  @X7FDownload BBS Listing            @X71│@X07"
  185. PRINTLN "@X71╠═════════════════════════════════════════════════════════════════════════════╡@X07"
  186. PRINTLN "@X71║ @X74▒▒▓▓██ @X70(@X71Q@X70)uit to Main Menu          @X74██▓▓▒▒  @X7FQuit to Main Menu               @X71│@X07"
  187. PRINTLN "@X71╠═════════════════════════════════════════════════════════════════════════════╡@X07"
  188. PRINTLN "@X71║ @X74▒▒▓▓██ @X70(@X71L@X70)ogoff/Goodbye             @X74██▓▓▒▒  @X7FLeaving So Soon?                @X71│@X07"
  189. PRINTLN "@X71╙─────────────────────────────────────────────────────────────────────────────┘@X07"
  190. RETURN
  191.  
  192. :VIEW
  193. BOOLEAN match
  194.  
  195. LET match       = FALSE
  196. LET a = 0
  197. LET b = 1
  198.  
  199. LET code = ""
  200. CLS
  201. INPUTSTR "Enter Area Code to search ", code, @X0B, 3, "1234567890",FIELDLEN+GUIDE+NEWLINE
  202. LET CODE = "@X74"+CODE
  203. FOPEN 1, PPEPATH()+"BBS", O_RD, S_DW
  204. FREWIND 1
  205.  
  206. GOSUB header
  207.  
  208. FGET 1, name
  209. FGET 1, number
  210. FGET 1, sysop
  211. FGet 1, s_date
  212. FGET 1, b_user
  213. FGET 1, check
  214. FGET 1, bbs_choice     'Type of Software
  215. FGET 1, mod_choice        'Type of Modem
  216. FGET 1, baud_choice
  217.  
  218. hold = LEFT(number, 4)
  219. hold = LTRIM(HOLD, "(")
  220.  
  221.  
  222. WHILE (!FERR(1)) DO
  223.  
  224.  
  225.  
  226.   IF (RIGHT(code,3) = hold) THEN
  227.  
  228.     IF (b > max) THEN
  229.       GOSUB header
  230.       LET b = 1
  231.     ENDIF
  232.  
  233.     ANSIPOS 1,4+a
  234.     PRINTLN "@X70│                                                                            @X7F║@X07"
  235.     ANSIPOS 1,5+a
  236.     PRINTLN "@X70│                                                                            @X7F║@X07"
  237.  
  238.     ANSIPOS 1,4+a
  239.     PRINT "@X70│@X75     "+name
  240.     ANSIPOS 33,4+a
  241.     PRINT "@X71"+number
  242.     ANSIPOS 60, 4+a
  243.     PRINTLN "@X70"+sysop
  244.     ANSIPOS 1, 5+a
  245.     PRINT "@X70│@X74     "+ baud_choice
  246.     ANSIPOS 33, 5+a
  247.     PRINT "@X7F"+ mod_choice
  248.     ANSIPOS 60, 5+A
  249.     PRINTLN "@X7E"+ bbs_choice
  250.     LET match = TRUE
  251.     LET a = a + 2
  252.     LET b = b + 1
  253.  
  254.     IF (b > max) THEN
  255.       GOSUB footer
  256.       LET hotkey = ""
  257.       PRINT "@X0APress @X0DReturn @X0Ato Continue @X0E-OR- @X0DESC @X0ATO QUIT@X07"
  258.       WHILE (hotkey <> chr(13)) DO
  259.         LET hotkey = INKEY()
  260.         LET hotkey = UPPER(hotkey)
  261.         IF (hotkey = CHR(27)) THEN
  262.           LET hotkey = ""
  263.           FCLOSE 1
  264.           let a = 0
  265.           let b = 1
  266.           RETURN
  267.         ENDIF
  268.       ENDWHILE
  269.       LET hotkey = ""
  270.       LET a = 0
  271.     ENDIF
  272.  
  273.   ENDIF
  274.  
  275.  
  276.   FGET 1, name
  277.   FGET 1, number
  278.   FGET 1, sysop
  279.   FGet 1, s_date
  280.   FGET 1, b_user
  281.   FGET 1, check
  282.   FGET 1, bbs_choice     'Type of Software
  283.   FGET 1, mod_choice        'Type of Modem
  284.   FGET 1, baud_choice
  285.  
  286.   hold = LEFT(number, 4)
  287.   hold = LTRIM(HOLD, "(")
  288.  
  289. ENDWHILE
  290.  
  291. IF (b <= max) THEN
  292.   GOSUB footer
  293.   WAIT
  294.   LET b = 1
  295.   LET a = 0
  296. ENDIF
  297.  
  298. FCLOSE 1
  299.  
  300.  
  301. RETURN
  302.  
  303. :header
  304. PRINTLN "@CLS@@X70╒@X7F════════════════════════════════════════════════════════════════════════════╗@X07"
  305. PRINTLN "@X70│@X71               Listing of BBSes in the ", "@X0B"+code, "@X71 area code.                       @X7F║@X07"
  306. PRINTLN "@X70│                                                                            @X7F║@X07"
  307. LET a = 0
  308. RETURN
  309.  
  310. :footer
  311. PRINTLN "@X70│                                                                            @X7F║@X07"
  312. PRINTLN "@X70└────────────────────────────────────────────────────────────────────────────@X7F╝@X07"
  313. RETURN
  314.  
  315. :gen_view
  316.  
  317. LET a = 0
  318. LET b = 1
  319.  
  320. CLS
  321. FOPEN 1, PPEPATH()+"BBS", O_RD, S_DW
  322. FREWIND 1
  323.  
  324. GOSUB gen_header
  325.  
  326. FGET 1, name
  327. FGET 1, number
  328. FGET 1, sysop
  329. FGet 1, s_date
  330. FGET 1, b_user
  331. FGET 1, check
  332. FGET 1, bbs_choice     'Type of Software
  333. FGET 1, mod_choice        'Type of Modem
  334. FGET 1, baud_choice
  335.  
  336.  
  337. WHILE (!FERR(1)) DO
  338.  
  339.   IF (b > gen_max) THEN
  340.     GOSUB gen_header
  341.     LET b = 1
  342.   ENDIF
  343.  
  344.   ANSIPOS 1,4+a
  345.   PRINTLN "@X70│                                                                            @X7F║@X07"
  346.  
  347.   ANSIPOS 1,4+a
  348.   PRINT "@X70│@X75     "+name
  349.   ANSIPOS 33,4+a
  350.   PRINT "@X71"+number
  351.   ANSIPOS 60, 4+a
  352.   PRINTLN "@X70"+sysop
  353.   LET a = a + 1
  354.   LET b = b + 1
  355.  
  356.   IF (b > gen_max) THEN
  357.     GOSUB gen_footer
  358.     LET hotkey = ""
  359.     PRINT "@X0APress @X0DReturn @X0Ato Continue @X0E-OR- @X0DESC @X0ATO QUIT@X07"
  360.     WHILE (hotkey <> chr(13)) DO
  361.       LET hotkey = INKEY()
  362.       LET hotkey = UPPER(hotkey)
  363.       IF (hotkey = CHR(27)) THEN
  364.         LET hotkey = ""
  365.         FCLOSE 1
  366.         let a = 0
  367.         let b = 1
  368.         RETURN
  369.       ENDIF
  370.     ENDWHILE
  371.     LET hotkey = ""
  372.  
  373.     LET a = 0
  374.   ENDIF
  375.  
  376.   FGET 1, name
  377.   FGET 1, number
  378.   FGET 1, sysop
  379.   FGet 1, s_date
  380.   FGET 1, b_user
  381.   FGET 1, check
  382.   FGET 1, bbs_choice     'Type of Software
  383.   FGET 1, mod_choice        'Type of Modem
  384.   FGET 1, baud_choice
  385.  
  386.  
  387. ENDWHILE
  388.  
  389. IF (b <= gen_max) THEN
  390.   GOSUB gen_footer
  391.   WAIT
  392.   LET b = 1
  393.   LET a = 0
  394. ENDIF
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402. FCLOSE 1
  403.  
  404.  
  405. RETURN
  406.  
  407. :gen_header
  408. PRINTLN "@CLS@@X70╒@X7F════════════════════════════════════════════════════════════════════════════╗@X07"
  409. PRINTLN "@X70│@X71                           General BBS Listing                              @X7F║@X07"
  410. PRINTLN "@X70│                                                                            @X7F║@X07"
  411. LET a = 0
  412. RETURN
  413.  
  414. :gen_footer
  415. PRINTLN "@X70│                                                                            @X7F║@X07"
  416. PRINTLN "@X70└────────────────────────────────────────────────────────────────────────────@X7F╝@X07"
  417. RETURN
  418.  
  419. :Data_Entry
  420. CLS
  421. Let count = 0 ' Reset Counter
  422. Let x = 0 'Reset X counter
  423. Let cmd = ""
  424. GOSUB GET_INFO 'Retreive Stored info
  425. count = count + 1;
  426. stored = count
  427.  
  428. GOSUB name_of_bbs
  429. GOSUB sysop_of_bbs
  430. GOSUB phone_of_bbs
  431. GOSUB ask_mark
  432. GOSUB pick_software
  433. GOSUB pick_modem
  434. GOSUB pick_baud
  435. GOSUB edit_menu
  436.  
  437. if (cmd = "A") THEN
  438.   count = count - 1
  439.   stored = 0
  440. endif
  441.  
  442. RETURN
  443.  
  444. :bmaker 'Create a Generic Bulletin that can be used as Logoff Screen
  445. FCREATE 5, PPEPATH()+"LISTING.TXT", O_WR, S_DN
  446. FREWIND 5
  447.  
  448. FOR x = 1 to count
  449.  
  450.   FPUTPAD 5, bbs_name(x), -20
  451.   FPUTPAD 5, bbs_phone(x), -17
  452.   FPUTPAD 5, bbs_sysop(x), 23
  453.   FPUTLN 5
  454.   FPUTPAD 5, bbs_soft(x), -20
  455.   FPUTPAD 5, bbs_modem(x), -20
  456.   FPUTPAD 5, bbs_baud(x),  20
  457.   FPUTLN 5
  458.   FPUTLN 5
  459.  
  460. NEXT
  461. FCLOSE 5
  462. FCREATE 4, PPEPATH()+"GOODBYEG", O_WR, S_DN
  463. FPUTLN 4,"@CLS@@X70╒@X7F════════════════════════════════════════════════════════════════════════════╗@X07"
  464. FPUTLN 4,"@X70│                             @X74BBS LISTER 2.00                                @X7F║@X07"
  465. FPUTLN 4,"@X70│                                                                            @X7F║@X07"
  466. FPUTLN 4,"@X70│ @X71Bulletin Board      @X7FTelephone        @X74Sysop's                @X70Date           @X7F║@X07"
  467. FPUTLN 4,"@X70│ @X71Name              @X7F  Number           @X74Name                   @X70Posted         @X7F║@X07"
  468. FPUTLN 4,"@X70│                                                                            @X7F║@X07"
  469.  
  470.  
  471. FCREATE 6, PPEPATH()+"SYSOPG", O_WR, S_DN
  472. FOR x = 1 to count
  473.  
  474.   IF (mark(x) = "Y") THEN
  475.     FPUT 6, "@X70│@X71 "
  476.     FPUTPAD 6, bbs_name(x), -20
  477.     FPUTPAD 6, bbs_phone(x), -17
  478.     FPUTPAD 6, bbs_sysop(x),-23
  479.     FPUTPAD 6, stamp_date(x), -15
  480.     FPUTLN 6, "@X7F║@X07"
  481.   ENDIF
  482.  
  483. NEXT
  484. FCLOSE 6  'Channel for writting BBSs in bulletin form.
  485.  
  486. FOPEN 2, PPEPATH()+"SYSOPG", O_RD, S_DW
  487. FREWIND 2
  488. FGET 2, line
  489. WHILE (!FERR(2)) DO
  490.   FPUTLN 4, line
  491.   FGET 2, line
  492. ENDWHILE
  493.  
  494. FCLOSE 2 'Put BBSs in Bullentin Lister
  495. FPUTLN 4,"@X70│                                                                            @X7F║@X07"
  496. FPUTLN 4,"@X70│ @X71PEPSTER'S PLACE  (313) 421-9145  SYSOP : JOHN PEPP (AUTHOR OF BBS LISTER)  @X7F║@X07"
  497. FPUTLN 4,"@X70└────────────────────────────────────────────────────────────────────────────╜@X07"
  498. FCLOSE 4 'Channel for Bullentin Lister
  499. RETURN
  500.  
  501. :ENTER_INFO 'Create Text File OF BBS Listings
  502.  
  503. FCREATE 1, PPEPATH()+"BBS", O_WR, S_DN
  504.  
  505. FOR x = 1 TO count
  506.   FPUTLN 1, bbs_name(x)
  507.   FPUTLN 1, bbs_phone(x)
  508.   FPUTLN 1, bbs_sysop(x)
  509.   FPUTLN 1, stamp_date(x)
  510.   FPUTLN 1, current_user(x)
  511.   FPUTLN 1, mark(x)
  512.   FPUTLN 1, bbs_soft(x) 'BBS software
  513.   FPUTLN 1, bbs_modem(x) 'Modem
  514.   FPUTLN 1, bbs_baud(x)
  515. NEXT
  516.  
  517. FCLOSE 1
  518.  
  519. FCREATE 2, PPEPATH()+"TOTAL", O_WR, S_DN
  520.   FPUTLN 2, count
  521. FCLOSE 2
  522.  
  523. RETURN
  524.  
  525.  
  526. :sysop_com 'IF user has high enough security to add/delete/modify.
  527.  
  528. GOSUB sysop_header
  529. LET hotkey = ""
  530.  
  531. WHILE (hotkey <> "Q") DO
  532.  
  533.   LET hotkey = ""
  534.   LET hotkey = INKEY()
  535.   LET hotkey = UPPER(hotkey)
  536.  
  537.   IF (hotkey = "M") THEN
  538.     GOSUB sysop_mod
  539.     GOSUB sysop_header
  540.   ELSE IF (hotkey = "D") THEN
  541.     GOSUB sysop_del
  542.     GOSUB sysop_header
  543.   ENDIF
  544.  
  545. ENDWHILE
  546.  
  547. LET hotkey = ""
  548.  
  549. RETURN
  550.  
  551. :sysop_mod 'Modification of USERS List
  552.  
  553. GOSUB get_info
  554. CLS
  555. NEWLINE
  556. INPUTSTR "Please enter BBS Name to be modified", search_name, @X0B, 25, MASK_ASCII(), NEWLINE+FIELDLEN+GUIDE
  557. FOR x = 1 TO count
  558.   IF (MIXED(search_name) = MIXED(bbs_name(X))) THEN
  559.      stored = x 'Store Users Record
  560.      GOSUB edit_menu
  561.      LET found_name = TRUE
  562.   ENDIF
  563. NEXT
  564.  
  565. IF (!(found_name)) THEN
  566.   CLS
  567.   PRINTLN "Name not found"
  568.   WAIT
  569. ENDIF
  570.  
  571. LET found_name = FALSE
  572.  
  573. RETURN
  574.  
  575. :sysop_del 'Delete User from List
  576. GOSUB get_info
  577. CLS
  578. NEWLINE
  579. INPUTSTR "Please enter BBS Name to be deleted", search_name, @X0B, 25, MASK_ASCII(), NEWLINE+FIELDLEN+GUIDE
  580. FOR x = 1 TO count
  581.   IF (MIXED(search_name) = MIXED(bbs_name(X))) THEN
  582.     PRINTLN "@X0CBBS Name                          @X0F|  @X07", "@X0A"+bbs_name(x)
  583.     PRINTLN "@X0CBBS Telephone Number of BBS       @X0F|  @X07", "@X0A"+bbs_phone(x)
  584.     PRINTLN "@X0CBBS Sysop                         @X0F|  @X07", "@X0A"+bbs_sysop(x)
  585.     PRINTLN "@X0CType of BBS Software              @X0F|  @X07", "@X0A"+bbs_soft(x)
  586.     PRINTLN "@X0CType of Modem                     @X0F|  @X07", "@X0A"+bbs_modem(x)
  587.     PRINTLN "@X0CBaud Rate                         @X0F|  @X07", "@X0A"+bbs_baud(x)
  588.     PRINTLN "@X0CLogOff Screen (Y/N)               @X0F|  @X07", "@X0A"+mark(x)
  589.     NEWLINES 2
  590.     PRINT "@X0BAre you sure you want to delete? (Y/N)@X07"
  591.     WHILE (hotkey <> "Q") DO
  592.       LET hotkey = ""
  593.       LET hotkey = INKEY()
  594.       LET hotkey = UPPER(hotkey)
  595.  
  596.       IF (hotkey = "Q") THEN
  597.         LET hotkey = ""
  598.       ENDIF
  599.  
  600.       IF (hotkey = "Y") THEN
  601.         LET bbs_name(x)  =  bbs_name(count)
  602.         LET bbs_phone(x) =  bbs_phone(count)
  603.         LET bbs_sysop(x) =  bbs_sysop(count)
  604.         LET bbs_soft(x)  =  bbs_soft(count)
  605.         LET bbs_modem(x) =  bbs_modem(count)
  606.         LET bbs_baud(x)  =  bbs_baud(count)
  607.         LET mark(x)      =  mark(count)
  608.         LET count = count - 1
  609.         GOSUB enter_info
  610.         GOSUB bmaker
  611.         LET hotkey = "Q"
  612.       ELSEIF (hotkey = "N") THEN
  613.         LET hotkey = "Q"
  614.       ENDIF
  615.     ENDWHILE
  616.  
  617.     LET hotkey = ""
  618.     LET found_name = TRUE
  619.   ENDIF
  620.  
  621. NEXT
  622.  
  623. IF (!(found_name)) THEN
  624.   CLS
  625.   PRINTLN "Name not found"
  626.   WAIT
  627. ENDIF
  628.  
  629. LET found_name = FALSE
  630.  
  631. RETURN
  632.  
  633. :sysop_header
  634.  
  635. CLS
  636. PRINTLN "@X71╔═══════════════════════════════╤══════════════════════╤══════════════════════╕@X07"
  637. PRINTLN "@X71║   @X74BBS LISTER 2.00             @X71│   @X70 SYSOP MENU        @X71│   @X75AUTHOR : JOHN PEPP @X71│@X07"
  638. PRINTLN "@X71╠═══╤═══════════════════════════╧══════════════════════╧══════════════════════╡@X07"
  639. PRINTLN "@X71@X71║ @X70M @X71│ @X74Modify or Change USER response(s) @X7F{ Change GOODBYE option }             @X71│@X07"
  640. PRINTLN "@X71╠═══╪═════════════════════════════════════════════════════════════════════════╡@X07"
  641. PRINTLN "@X71║ @X70D @X71│ @X74Delete a BBS Listing                                                    @X71│@X07"
  642. PRINTLN "@X71╠═══╪═════════════════════════════════════════════════════════════════════════╡@X07"
  643. PRINTLN "@X71║ @X70Q @X71│ @X74Quit to Main Menu                                                       @X71│@X07"
  644. PRINTLN "@X71╙───┴─────────────────────────────────────────────────────────────────────────┘@X07"
  645.  
  646. RETURN
  647.  
  648. :GET_INFO
  649.  
  650. FOPEN 3, PPEPATH()+"TOTAL", O_RD, S_DW
  651. FREWIND 3
  652.  
  653. IF (FERR(3)) THEN
  654.   SPRINTLN "Error, File Doesn't Exist"
  655.   Let count = 0
  656.   GOTO skip 'No need to open other file
  657. ENDIF
  658.  
  659. IF (!FERR(3)) THEN
  660.   FGET 3, count
  661. ENDIF
  662.  
  663. IF (count >= total) THEN
  664.   max_bull = TRUE
  665. ENDIF
  666.  
  667. FOPEN 1, PPEPATH()+"BBS", O_RD, S_DW
  668. FREWIND 1
  669. FOR x = 1 TO count
  670.  
  671.   FGET 1, bbs_name(x)
  672.   FGET 1, bbs_phone(x)
  673.   FGET 1, bbs_sysop(x)
  674.   FGET 1, stamp_date(x)
  675.   FGET 1, current_user(x)
  676.   FGET 1, mark(x)
  677.   FGET 1, bbs_soft(x)
  678.   FGET 1, bbs_modem(x)
  679.   FGET 1, bbs_baud(x)
  680.  
  681.   IF (U_NAME() = current_user(X)) THEN
  682.      no_add = TRUE
  683.      stored = x 'Store Users Record
  684.   ENDIF
  685.  
  686. NEXT
  687. FCLOSE 1
  688. :skip 'File Doesn't Exist No Need for Opening It!
  689.  
  690. FCLOSE 3
  691.  
  692. RETURN
  693.  
  694. :name_of_bbs 'Subroutine to have user choose bbs software
  695.  
  696.  
  697.  
  698.  
  699. INPUTSTR "Enter BBS Name : ", name, @X0B, 20, MASK_ASCII(), FIELDLEN+GUIDE+NEWLINE
  700. LET bbs_name(stored) = name
  701.  
  702. RETURN
  703.  
  704. :sysop_of_bbs
  705.  
  706. INPUTSTR "Enter BBS Sysop's Name : ", sysop, @X0B, 20, MASK_ASCII(), FIELDLEN+GUIDE+NEWLINE
  707. LET bbs_sysop(stored) = sysop
  708. LET current_user(stored) = U_NAME()
  709. RETURN
  710.  
  711. :phone_of_bbs
  712.  
  713. CLS
  714. PRINTLN "@X0FPlease Enter BBS Telephone Number."
  715. NEWLINES 5
  716. INPUTSTR "Area Code", areacode, @X0B, 3, "1234567890", FIELDLEN+GUIDE+NEWLINE
  717. INPUTSTR "Prefix", prefix, @X0B, 3, "1234567890", FIELDLEN+GUIDE+NEWLINE
  718. INPUTSTR "Suffix", suffix, @X0B, 4, "1234567890", FIELDLEN+GUIDE+NEWLINE
  719. LET bbs_phone(stored) = "("+areacode+") "+prefix+"-"+suffix
  720. LET stamp_date(stored) = DATE() 'Stamp the Date the USER entered the BBS
  721.  
  722. RETURN
  723.  
  724. :pick_software
  725.  
  726. PRINTLN "@CLS@@X70╒@X7F════════════════════════════════════════════════════════════════════════════╗@X07"
  727. PRINTLN "@X70│                       @X74Pepster's Place BBS Software Picker                  @X7F║@X07"
  728. PRINTLN "@X70│                                                                            @X7F║@X07"
  729. PRINTLN "@X70│        @X71No.   @X75Software                @X71No.   @X75Software                        @X7F║@X07"
  730. PRINTLN "@X70│                                                                            @X7F║@X07"
  731. PRINTLN "@X70│ @X71        1.  @X75 PCBoard                 @X71 9.   @X75Renegade                        @X7F║@X07"
  732. PRINTLN "@X70│         @X712.   @X75Wildcat              @X71   10.   @X75Powerboard BBS                  @X7F║@X07"
  733. PRINTLN "@X70│         @X713.   @X75The Major BBS           @X7111.   @X75Magnum BBS                      @X7F║@X07"
  734. PRINTLN "@X70│         @X714.   @X75SearchLight BBS         @X7112.   @X75Spitfire BBS                    @X7F║@X07"
  735. PRINTLN "@X70│         @X715.   @X75TBBS                    @X7113.   @X75RoboBoard/FX                    @X7F║@X07"
  736. PRINTLN "@X70│         @X716.   @X75TAG                     @X7114.   @X75RY BBS                          @X7F║@X07"
  737. PRINTLN "@X70│         @X717.   @X75Remote Access           @X7115.   @X75Virtual BBS                     @X7F║@X07"
  738. PRINTLN "@X70│         @X718.   @X75GAP                     @X7116.   @X75Other BBS Software              @X7F║@X07"
  739. PRINTLN "@X70│                                                                            @X7F║@X07"
  740. PRINTLN "@X70│                            @X74Version 1.50                                    @X7F║@X07"
  741. PRINTLN "@X70└────────────────────────────────────────────────────────────────────────────@X7F╝@X07"
  742.  
  743. INPUTSTR "Please Pick the Corresponding BBS Software (1-16)", i, @X0B, 2, MASK_NUM(), NEWLINE
  744. IF  (i > 16) THEN GOTO pick_software
  745. ENDIF
  746. IF  (i < 1) THEN GOTO pick_software
  747. ENDIF
  748.  
  749. LET bbs_soft(stored) = top_soft(i)
  750.  
  751. LET i = 0
  752.  
  753. RETURN
  754.  
  755. :pick_modem
  756. ;Generat Modem Sysop uses.......
  757.  
  758. PRINTLN "@CLS@@X70╒@X7F════════════════════════════════════════════════════════════════════════════╗@X07"
  759. PRINTLN "@X70│                       @X74Pepster's Place Modem Picker                         @X7F║@X07"
  760. PRINTLN "@X70│                                                                            @X7F║@X07"
  761. PRINTLN "@X70│        @X71No.   @X75Company                 @X71No.   @X75Company                         @X7F║@X07"
  762. PRINTLN "@X70│                                                                            @X7F║@X07"
  763. PRINTLN "@X70│ @X71        1.  @X75 AT&T Paradyne           @X7111.   @X75Microcom                        @X7F║@X07"
  764. PRINTLN "@X70│         @X712.   @X75ATI Technologies     @X71   12.   @X75Multi-Tech Systems              @X7F║@X07"
  765. PRINTLN "@X70│         @X713.   @X75Cardinal Technologies   @X7113.   @X75Pratical Peripherals            @X7F║@X07"
  766. PRINTLN "@X70│         @X714.   @X75Computer Peripherals    @X7114.   @X75Supra Corporation               @X7F║@X07"
  767. PRINTLN "@X70│         @X715.   @X75Digicom Systems         @X7115.   @X75Telebit Corporation             @X7F║@X07"
  768. PRINTLN "@X70│         @X716.   @X75Galaxy Networks         @X7116.   @X75U.S. Robotics                   @X7F║@X07"
  769. PRINTLN "@X70│         @X717.   @X75GVC Technologies        @X7117.   @X75Ven-Tel                         @X7F║@X07"
  770. PRINTLN "@X70│         @X718.   @X75Hayes Microcomputer     @X7118.   @X75ZyXEL                           @X7F║@X07"
  771. PRINTLN "@X70│         @X719.   @X75Image Communications    @X7119.   @X75Zoom Telephonics                @X7F║@X07"
  772. PRINTLN "@X70│       @X71 10.   @X75Intel Corporation       @X7120.   @X75Other                           @X7F║@X07"
  773. PRINTLN "@X70│                                                                            @X7F║@X07"
  774. PRINTLN "@X70│                            @X74Version 1.50                                    @X7F║@X07"
  775. PRINTLN "@X70└────────────────────────────────────────────────────────────────────────────@X7F╝@X07"
  776. NEWLINE
  777. INPUTSTR "Please Pick the Corresponding Modem Number (1-20)", i, @X0B, 2, MASK_NUM(), NEWLINE
  778. IF  (i > 20) THEN GOTO pick_modem
  779. ENDIF
  780. IF  (i < 1) THEN GOTO pick_modem
  781. ENDIF
  782.  
  783. LET bbs_modem(stored) = top_modem(i)
  784.  
  785. Let i = 0
  786. RETURN
  787.  
  788. :pick_baud
  789.  
  790. PRINTLN "@CLS@@X70╒@X7F═══════════════════════════════════════╗@X07"
  791. PRINTLN "@X70│     @X71What Baud Rate Do You Support?    @X7F║@X07"
  792. PRINTLN "@X70│                                       @X7F║@X07"
  793. PRINTLN "@X70│   @X701.  @X741200/2400                       @X7F║@X07"
  794. PRINTLN "@X70│   2.  @X742400                            @X7F║@X07"
  795. PRINTLN "@X70│   3.  @X742400/9600/14400                 @X7F║@X07"
  796. PRINTLN "@X70│   4.  @X749600/14400/19200            @X71    @X7F║@X07"
  797. PRINTLN "@X70│   5.  @X7419200+                          @X7F║@X07"
  798. PRINTLN "@X70│                                       @X7F║@X07"
  799. PRINTLN "@X70│                                       @X7F║@X07"
  800. PRINTLN "@X70│                                       @X7F║@X07"
  801. PRINTLN "@X70│                                       @X7F║@X07"
  802. PRINTLN "@X70│                                       @X7F║@X07"
  803. PRINTLN "@X70│                                       @X7F║@X07"
  804. PRINTLN "@X70│   @X75*Note : I realize that this         @X7F║@X07"
  805. PRINTLN "@X70│    @X75doesn't cover everthing, so        @X7F║@X07"
  806. PRINTLN "@X70│    @X75please choose the closest.         @X7F║@X07"
  807. PRINTLN "@X70└───────────────────────────────────────@X7F╝@X07"
  808. INPUTSTR "Please Pick the Corresponding baud rate (1-5)", i, @X0B, 2, MASK_NUM(), NEWLINE
  809. IF  (i > 5) THEN GOTO pick_baud
  810. ENDIF
  811. IF  (i < 1) THEN GOTO pick_baud
  812. ENDIF
  813.  
  814. LET bbs_baud(stored) = top_baud(i)
  815.  
  816. LET i = 0
  817.  
  818. RETURN
  819.  
  820. :edit_menu
  821.  
  822. WHILE (!(edit_exit)) DO
  823.   CLS
  824.   PRINTLN "@X0AThe Edit Menu "
  825.   NEWLINES 2
  826.   PRINTLN "@X0BBBS (@X0DN@X0B)ame                          @X0F|  @X07", "@X0A"+bbs_name(stored)
  827.   PRINTLN "@X0BBBS (@X0DT@X0B)elephone Number of BBS       @X0F|  @X07", "@X0A"+bbs_phone(stored)
  828.   PRINTLN "@X0BBBS S(@X0DY@X0B)sop                         @X0F|  @X07", "@X0A"+bbs_sysop(stored)
  829.   PRINTLN "@X0BType of (@X0DB@X0B)BS Software              @X0F|  @X07", "@X0A"+bbs_soft(stored)
  830.   PRINTLN "@X0BType of (@X0DM@X0B)odem                     @X0F|  @X07", "@X0A"+bbs_modem(stored)
  831.   PRINTLN "@X0BBaud (@X0DR@X0B)ate                         @X0F|  @X07", "@X0A"+bbs_baud(stored)
  832.   PRINTLN "@X0BLog(@X0DO@X0B)ff Screen (Y/N)               @X0F|  @X07", "@X0A"+mark(stored)
  833.  
  834.   PRINTLN
  835.   PRINTLN "@X0A(@X0CS@X0A)ave Changes@X07"
  836.   PRINTLN "@X0A(@X0CA@X0A)bort Changes@X07 "
  837.   NEWLINE
  838.   LET cmd = " "
  839.  
  840.   INPUTSTR "Enter B, M, N, T, Y, R, O, S, or A ", cmd, @X0B, 1, "BMNTYROSA", UPCASE+FIELDLEN+GUIDE+NEWLINE
  841.  
  842.   IF (cmd = "A") THEN
  843.     CLS
  844.     PRINTLN "@X8CAborting and Returning to Menu@X07"
  845.     LET name = ""
  846.     LET sysop = ""
  847.     LET areacode = ""
  848.     LET prefix = ""
  849.     LET suffix = ""
  850.     RETURN
  851.   ELSE IF (cmd = "R") THEN
  852.     GOSUB pick_baud
  853.   ELSE IF (cmd = "B") THEN
  854.     GOSUB pick_software
  855.   ELSE IF (cmd = "M") THEN
  856.     GOSUB pick_modem
  857.   ELSE IF (cmd = "N") THEN
  858.     GOSUB name_of_bbs
  859.   ELSE IF (cmd = "T") THEN
  860.     GOSUB phone_of_bbs
  861.   ELSE IF (cmd = "Y") THEN
  862.     GOSUB sysop_of_bbs
  863.   ELSE IF (cmd = "O") THEN
  864.     GOSUB ask_mark
  865.   ELSE IF (cmd = "S") THEN
  866.     CLS
  867.     GOSUB enter_info
  868.     GOSUB bmaker 'Generate Bulletin
  869.     edit_exit = TRUE
  870.   ENDIF
  871.  
  872. ENDWHILE
  873. edit_exit = FALSE 'Set Back Flag to False
  874. RETURN
  875.  
  876. :ask_mark
  877.  
  878. CLS
  879. IF (CURSEC() => bull_level) THEN
  880.   INPUTSTR "Do you want you bbs to show up on Goodbye Screen (Y/N)", mark(stored), @X0E, 1, "", AUTO+YESNO
  881. ELSE
  882.   PRINTLN "@X0CIf you wish to have a Logoff Listing on @BOARDNAME@@X07"
  883.   PRINTLN "@X0CPlease Leave a Private Message to the Sysop "
  884.   PRINTLN "@X0A-OR-@X07"
  885.   PRINTLN "@X0FRent A Line for $5.00@X07"
  886.   PRINTLN "@X0BMake check/money order (Do Not Send Cash!) to : "
  887.   PRINTLN "John Pepp                                       "
  888.   PRINTLN "P.O. Box 51171 "
  889.   PRINTLN "Livonia, Mi 48151@X07"
  890.   DELAY 18*7
  891.   mark(stored) = "N"
  892. ENDIF
  893.  
  894. RETURN
  895.